package com.nidu.demo.tenant.dto;

import com.nidu.demo.base.BaseCmd;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * 租户创建命令
 *
 * @author auto
 */
@Data
@Schema(description = "租户创建命令")
@EqualsAndHashCode(callSuper = true)
public class TenantAddCmd extends BaseCmd {

    /**
     * 租户名称
     */
    @NotBlank(message = "租户名称不能为空")
    @Schema(description = "租户名称", example = "示例租户")
    private String name;

    /**
     * 租户管理员用户名
     */
    @NotBlank(message = "租户管理员用户名不能为空")
    @Schema(description = "租户管理员用户名", example = "admin")
    private String adminUsername;

    /**
     * 租户管理员名称
     */
    @NotBlank(message = "租户管理员名称不能为空")
    @Schema(description = "租户管理员名称", example = "管理员")
    private String adminName;

    /**
     * 租户管理员手机号
     */
    @NotBlank(message = "租户管理员手机号不能为空")
    @Schema(description = "租户管理员手机号", example = "13800000000")
    private String adminMobile;

    /**
     * 网站域名
     */
    @Schema(description = "网站域名", example = "nidu.com")
    private String website;

    /**
     * 租户套餐ID
     */
    @NotNull(message = "租户套餐不能为空")
    @Schema(description = "租户套餐ID", example = "1")
    private Long packageId;

    /**
     * 过期时间
     */
    @Schema(description = "过期时间")
    private LocalDateTime expireTime;

    /**
     * 用户数量限制
     */
    @Schema(description = "用户数量限制", example = "100")
    private Integer accountCount;

    /**
     * 描述
     */
    @Schema(description = "描述", example = "这是一个示例租户")
    private String remark;

}